package com.scs.application.modules.upms.controller;

import com.scs.application.core.model.CommonResult;
import com.scs.application.core.mvc.controller.BaseController;
import com.scs.application.core.permission.Button;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @Description:
 */
@RestController
@RequestMapping("/upms/test")
@Resource(name = "测试资源")
public class TestController extends BaseController {

//    hasRole([role])	               	当前用户是否拥有指定角色。
//    hasAnyRole([role1,role2])		 多个角色是一个以逗号进行分隔的字符串。如果当前用户拥有指定角色中的任意一个则返回true。
//    hasAuthority([auth])	            等同于hasRole
//    hasAnyAuthority([auth1,auth2])	等同于hasAnyRole
//    Principle	                    	代表当前用户的principle对象
//    authentication	            	直接从SecurityContext获取的当前Authentication对象
//    permitAll	   					总是返回true，表示允许所有的
//    denyAll							总是返回false，表示拒绝所有的
//    isAnonymous()					当前用户是否是一个匿名用户
//    isRememberMe()					表示当前用户是否是通过Remember-Me自动登录的
//    isAuthenticated()				表示当前用户是否已经登录认证成功了。
//    isFullyAuthenticated()			如果当前用户既不是一个匿名用户，同时又不是通过Remember-Me自动登录的，则返回true。


    @RequestMapping("/test1")
    @Button(permission = "test:test1", name = "测试1", sort = 10)
    public CommonResult test1() {
        return CommonResult.ok();
    }


    @RequestMapping("/test2")
    @Button(permission = "test:test2", name = "测试2", sort = 20)
    public CommonResult test2() {
        return CommonResult.ok();
    }

    @Data
    public static class TestDTO {

        private String aa;
        private String bb;
    }

    @RequestMapping("/test3")
    public CommonResult test3(@RequestBody TestDTO[] dtos) {
        for (TestDTO dto : dtos) {
            System.out.println(dto.getAa());
            System.out.println(dto.getBb());
        }
        return CommonResult.ok();
    }

}
